<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Configuration" %>

<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim DBCon As SqlConnection
        Dim Command As SqlCommand = New SqlCommand()
        Dim OrdersReader As SqlDataReader
        Dim ASyncResult As IAsyncResult
        Dim WHandle As Threading.WaitHandle

        DBCon = New SqlConnection()
        DBCon.ConnectionString = ConfigurationManager.ConnectionStrings("DSN_NorthWind").ConnectionString

        Command.CommandText = 
                "SELECT TOP 5 Customers.CompanyName, Customers.ContactName, " & 
                "Orders.OrderID, Orders.OrderDate, " & 
                "Orders.RequiredDate, Orders.ShippedDate " & 
                "FROM Orders, Customers " & 
                "WHERE Orders.CustomerID = Customers.CustomerID " & 
                "ORDER BY Customers.CompanyName, Customers.ContactName"

        Command.CommandType = CommandType.Text
        Command.Connection = DBCon

        DBCon.Open()

        ' Rozpoczcie procesu asynchronicznego
        ASyncResult = Command.BeginExecuteReader()

        WHandle = ASyncResult.AsyncWaitHandle

        If WHandle.WaitOne = True Then
            ' Pobranie wynikw procesu asynchronicznego
            OrdersReader = Command.EndExecuteReader(ASyncResult)

            ' Wywietlenie wynikw na ekranie
            gvOrders.DataSource = OrdersReader
            gvOrders.DataBind()

            ' Zamykanie poczenia
            DBCon.Close()
        Else
            ' Min limit czasu przeznaczonego na wykonanie procesu
            ' asynchronicznego. Obsu to tutaj.
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Oczekiwanie</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView ID="gvOrders" runat="server" 
     AutoGenerateColumns="False" Width="100%">
       <Columns>
          <asp:BoundField HeaderText="Nazwa firmy" 
           DataField="CompanyName"></asp:BoundField>
          <asp:BoundField HeaderText="Kontakt" 
           DataField="ContactName"></asp:BoundField>
          <asp:BoundField HeaderText="Data zamwienia" 
           DataField="orderdate" DataFormatString="{0:d}"></asp:BoundField>
          <asp:BoundField HeaderText="Wymagana data dostawy" DataField="requireddate" 
           DataFormatString="{0:d}"></asp:BoundField>
          <asp:BoundField HeaderText="Data dostawy" DataField="shippeddate" 
           DataFormatString="{0:d}"></asp:BoundField>
       </Columns>
    </asp:GridView>
    </div>
    </form>
</body>
</html>
